package com.lu.pojo.annotation;

import java.lang.annotation.*;

/**
 * @author luzhenfang
 * @date 2020 05 24
 * @description 元注解
 */
// 测试元注解
public class TestAnnotation{
    // 如果没有默认值 必须要给注解赋值
    @MyAnnotation(name = "luzhenfang",schools = {"a","b"})
    public void test(){

    }
    @Request(value = "GET")
    public void test01(){

    }

}

// 定义一个注解
// target 表示我们注解 可以用在哪些地方
@Target(value = {ElementType.METHOD, ElementType.TYPE})
// 表示注解什么时候有效
@Retention(value = RetentionPolicy.RUNTIME)
// 表示注解是否生成在javadoc 中
@Documented
// 子类可以继承父类的注解
@Inherited
@interface MyAnnotation{
    // 注解参数  类型+名();
    String name() default "";
    int age() default 0;
    int id() default -1; // 如果默认值为-1 代表不存在
    String[] schools() default {"a","b"};
}

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
// 如果只有一个参数建议使用 value命名
@interface Request{
    String value();
}